package com.inforich.common.constant;

import io.jsonwebtoken.Claims;

/**
 * 通用常量信息
 *
 * @author hjm
 */
public class Constants {

  /**
   * UTF-8 字符集
   */
  public static final String UTF8 = "UTF-8";

  /**
   * GBK 字符集
   */
  public static final String GBK = "GBK";

  /**
   * www主域
   */
  public static final String WWW = "www.";

  /**
   * http请求
   */
  public static final String HTTP = "http://";

  /**
   * https请求
   */
  public static final String HTTPS = "https://";

  /**
   * 通用成功标识
   */
  public static final String SUCCESS = "0";

  /**
   * 通用失败标识
   */
  public static final String FAIL = "1";

  /**
   * 登录成功
   */
  public static final String LOGIN_SUCCESS = "Success";

  /**
   * 注销
   */
  public static final String LOGOUT = "Logout";

  /**
   * 注册
   */
  public static final String REGISTER = "Register";

  /**
   * 登录失败
   */
  public static final String LOGIN_FAIL = "Error";

  /**
   * 验证码有效期（分钟）
   */
  public static final Integer CAPTCHA_EXPIRATION = 2;

  /**
   * 令牌
   */
  public static final String TOKEN = "token";

  /**
   * 令牌前缀
   */
  public static final String TOKEN_PREFIX = "Bearer ";

  /**
   * 令牌前缀
   */
  public static final String LOGIN_USER_KEY = "login_user_key";
  public static final String LOGIN_USER_TYPE = "login_user_type";
  public static final String LOGIN_USER_ROLE = "login_user_role";

  /**
   * 用户ID
   */
  public static final String JWT_USERID = "userid";

  /**
   * 用户名称
   */
  public static final String JWT_USERNAME = Claims.SUBJECT;

  /**
   * 用户头像
   */
  public static final String JWT_AVATAR = "avatar";

  /**
   * 创建时间
   */
  public static final String JWT_CREATED = "created";

  /**
   * 用户权限
   */
  public static final String JWT_AUTHORITIES = "authorities";

  /**
   * 资源映射路径 前缀
   */
  public static final String RESOURCE_PREFIX = "/profile";

  /**
   * RMI 远程方法调用
   */
  public static final String LOOKUP_RMI = "rmi:";

  /**
   * LDAP 远程方法调用
   */
  public static final String LOOKUP_LDAP = "ldap:";

  /**
   * LDAPS 远程方法调用
   */
  public static final String LOOKUP_LDAPS = "ldaps:";

  /**
   * 定时任务白名单配置（仅允许访问的包名，如其他需要可以自行添加）
   */
  public static final String[] JOB_WHITELIST_STR = {"com.inforich"};

  /**
   * 定时任务违规的字符
   */
  public static final String[] JOB_ERROR_STR = {"java.net.URL", "javax.naming.InitialContext",
      "org.yaml.snakeyaml",
      "org.springframework", "org.apache", "com.inforich.common.utils.file"};
}
